﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Common;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Ordens;
using System.ComponentModel;
using Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.LoteDigitacao;


namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
    class TranslatorLoteDigitacaoResponse:
          BaseTranslator<Model.LoteDigitacao,
            LoteDigitacaoResponse, 
            ModelCollection<Model.LoteDigitacao>,
            List<LoteDigitacaoResponse>>
    {

        public override Model.LoteDigitacao Translate( LoteDigitacaoResponse from)
        {
            Model.LoteDigitacao to = new Model.LoteDigitacao();
            to.ApelidoCliente = from.ApelidoCliente;
            to.CodigoAgenteCustodia = from.CodigoAgenteCustodia;
            to.CodigoCarteira = from.CodigoCarteira;
            to.CodigoCliente = from.CodigoCliente;
            to.CodigoClienteCustodia = from.CodigoClienteCustodia;
            to.DataMovimento = from.DataMovimento;
            to.DigitoClienteCustodiaDigitacao = from.DigitoClienteCustodia;
            to.DigitoVerificadorCliente = from.DigitoVerificadorCliente;
            to.IndicadorNaoLiquidacao = from.IndicadorNaoLiquidacao;
            to.IndicadorSistemaExterno = from.IndicadorSistemaExterno;
            to.NumeroConjunto = from.NumeroConjunto;
            to.NumeroSequenciaDigitacao = from.NumeroSequenciaDigitacao;
            to.PercentualAcrescimo = from.PercentualAcrescimo;
            to.PercentualDistribuido = from.PercentualDistribuido;
            to.PrecoInformado = from.PrecoInformado;
            to.QuantidadeDestinadaCliente = from.QuantidadeDestinadaCliente;
            to.SituacaoCliente = from.SituacaoCliente;
            TranslatorEnumTipoDistribuicao tipoDistribuicao = new TranslatorEnumTipoDistribuicao();
             Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoDistribuicao tipoDistribuicaoEnum = new Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoDistribuicao();
            tipoDistribuicao.TranslateEnum(from.TipoDistribuicao, out tipoDistribuicaoEnum);
             to.TipoDistribuicao = tipoDistribuicaoEnum;

            TranslatorTipoLiquidacaoDistribuicao TipoLiquidacao = new TranslatorTipoLiquidacaoDistribuicao();
            Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoLiquidacaoDistribuicao? tipoLiquidacaoDistribuicao = new Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoLiquidacaoDistribuicao();
            TipoLiquidacao.TranslateEnum(from.TipoLiquidacao, out tipoLiquidacaoDistribuicao);
            to.TipoLiquidacao = tipoLiquidacaoDistribuicao;
            to.ValorDolar = from.ValorDolar;
            to.UtilizaContaInvestimento = from.UtilizaContaInvestimento;
            return to;
        }
    }
}

